package com.neuedu.corejava.ch6;
/**
 * 20190801
 * 常见的类
 * @author admin
 *
 */
//在一个java文件中，只能有一个类是public类型的，且类的名称必须与文件名相同（大小写敏感）
//在java类中，如果编写了静态代码块，代码块和构造器：在实例对象时的执行先后顺序：静态代码块->代码块->构造方法
public class Outter {

	//实例变量 - 实例属性 -实例属性只跟对象相关
	private int id;
	private String name;
	
	//静态变量 - 类属性 -类属性是全局属性，与类相关
	static String man="男";
	static String woman="女";
	
	public Outter() {
		// TODO Auto-generated constructor stub
		System.out.println("outer 构造方法");
	}
	
	{
		//在一个java类中，可以编写代码块
		//代码块是跟实例相关的，在执行构造方法前执行
		System.out.println("java代码块");
	}
	
	static{
		//在java类中，可以编写静态代码块
		//静态代码块是跟类相关的；
		System.out.println("java 静态代码块");
	}
	public class Inner{
		//内部类可以有：
		//1.实例变量
		//2.类变量
		//3.常量
		//4.方法
		//5.代码块
		//注意：内部类不能编写静态代码块
		{
			
		}
		public class Inner2{
			//内部类可以支持多级嵌套
		}
		
		//特殊的：内部类有一个情况叫匿名内部类
		//在使用new关键词实例化接口或抽象类时，可以编写成匿名内部类
		Runnable runnable=new Runnable() {
			public void run() {
				
			}
		};
		
	}
	
	public class Inner3{
		//在一个类中可以嵌套多个内部类
	}

}

//在一个java文件中可以编写多个java类都是外部
class Outter2{
	
}